#include "smg.h"
#include "stm32f10x.h"
 //该数组为共阳极数码管 0-9 段码
static uint16_t su16_DpyNum[] = {0x00C0, 0x00F9, 0x00A4, 0x00B0, 0x0099, 
                                 0x0092, 0x0082, 0x00F8, 0x0080, 0x0090};	//位选编码 
static uint16_t su16_DpyBit[] = {0xFFE1,0xFFFD, 0xFFFB, 0xFFF7, 0xFFEF}; 
void SMG_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOA, ENABLE);// 开启PD、PA时钟 
    /* 段码接口I/O配置 */
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3 
    |GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;	
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;
    GPIO_Init(GPIOD, &GPIO_InitStructure);
	GPIO_SetBits(GPIOD,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3 
	|GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7);
    /* 位选接口I/O配置 */
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
}
//数码管显示(显示的位、需要显示的数字)
void SMG_Dpy(uint8_t u8_Bit, uint8_t u8_Num)
{
	GPIO_Write(GPIOA, su16_DpyBit[u8_Bit]);
	GPIO_Write(GPIOD, su16_DpyNum[u8_Num]);
}